home *** CD-ROM | disk | FTP | other *** search
/ Complete Internet Archive / Complete Internet Archive.iso / VRML / cp2b2x.exe / DATA.Z / optmenu.tcl < prev    next >
Text File  |  1996-04-23  |  2KB  |  47 lines

  1. # optMenu.tcl --
  2. #
  3. # This file defines the procedure tk_optionMenu, which creates
  4. # an option button and its associated menu.
  5. #
  6. # @(#) optMenu.tcl 1.7 95/10/04 15:00:18
  7. #
  8. # Copyright (c) 1994 The Regents of the University of California.
  9. # Copyright (c) 1994 Sun Microsystems, Inc.
  10. #
  11. # See the file "license.terms" for information on usage and redistribution
  12. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  13. #
  14.  
  15. # tk_optionMenu --
  16. # This procedure creates an option button named $w and an associated
  17. # menu.  Together they provide the functionality of Motif option menus:
  18. # they can be used to select one of many values, and the current value
  19. # appears in the global variable varName, as well as in the text of
  20. # the option menubutton.  The name of the menu is returned as the
  21. # procedure's result, so that the caller can use it to change configuration
  22. # options on the menu or otherwise manipulate it.
  23. #
  24. # Arguments:
  25. # w -            The name to use for the menubutton.
  26. # varName -        Global variable to hold the currently selected value.
  27. # firstValue -        First of legal values for option (must be >= 1).
  28. # args -        Any number of additional values.
  29.  
  30. proc tk_optionMenu {w varName firstValue args} {
  31.     upvar #0 $varName var
  32.  
  33.     if ![info exists var] {
  34.     set var $firstValue
  35.     }
  36.     menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \
  37.         -relief raised -bd 2 -padx 4p -pady 4p -highlightthickness 2 \
  38.         -anchor c
  39.     menu $w.menu -tearoff 0
  40.     $w.menu add command -label $firstValue \
  41.         -command [list set $varName $firstValue]
  42.     foreach i $args {
  43.     $w.menu add command -label $i -command [list set $varName $i]
  44.     }
  45.     return $w.menu
  46. }
  47.